Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In some cases, software applications are designed specifically to work with multicore or multiprocessor systems. In such systems, data is partitioned into different parts which can each be processed by a different processing thread. By aligning the partitioned parts, the software application can be processed in parallel. In some cases, the processing is performed using queries. The queries use query operators which make guarantees regarding the data's ordering and configuration. The query operators are configured to coordinate with each other and are aware of each other's execution. As such, the query operators operate in a closed system that does not allow for the use of custom operators.